/**
 * 后台类型管理。
 *
 * @author    Fairyin <fairyin@126.com>
 * @copyright © 2016 www.imcn.vip
 * @license   GPL-3.0
 */

$(document).ready(function(){
    if (!$(".scopes_album").length) return;

    if ("object" != typeof _album) _album = {};
    
    _album.showDilog = function(token){
        $(".scopes_album #picker .webuploader-pick").html('选择文件');
        $('#album').modal('show');
        _album.init_upload(token);
    };
    
    $(".scopes_album .add_album").on('click', function(){
        $("input[name='album']").val('add_album');
        $("input[name='title']").val('');
        _album.showDilog($(this).attr('data-token'));
    });
    
    //启用类型
    $(".scopes_album .btn-qiyong").on('click', function(){
        var id = $(this).attr('data-id');
        var flag = confirm('启用类型？');
        if (flag === true) {
            $("input[name='album']").val('qiyong_album');
            $("input[name='id']").val(id);
            $(".scopes_album form").submit();
        }
    });
    
    //禁用类型
    $(".scopes_album .btn-jinyong").on('click', function(){
        var id = $(this).attr('data-id');
        var flag = confirm('禁用类型？');
        if (flag === true) {
            $("input[name='album']").val('jinyong_album');
            $("input[name='id']").val(id);
            $(".scopes_album form").submit();
        }
    });
    
    //编辑类型
    $(".scopes_album .btn-edit").on('click', function(){
        $("input[name='album']").val('edit_album');
        $("input[name='id']").val($(this).attr('data-id'));
        $("input[name='title']").val($(this).attr('data-title'));
        _album.showDilog();
    });
    
    var uploader = {};
    
    _album.init_upload = function(token){
        if (typeof(uploader.options) !== 'undefined') {
            return false;
        }
        setTimeout(function(){
            uploader = WebUploader.create({
                // 选完文件后，是否自动上传。
                auto: true,
                // 文件接收服务端。
                server: '//imcn.vip/shadow/upload',
                // 选择文件的按钮。可选。
                // 内部根据当前运行是创建，可能是input元素，也可能是flash.
                pick: '#picker',
                // 只允许选择图片文件。
                accept: {
                    title: 'Images',
                    extensions: 'gif,jpg,jpeg,bmp,png',
                    mimeTypes: 'image/*'
                },
                formData: {
                    _token: token,
                    type: 'cover'
                },
                fileVal: 'img'
            });
            uploader.on('uploadSuccess', function(file, response) { 
                if (typeof(response.key) !== 'undefined') {
                    $(".scopes_album #picker .webuploader-pick").html('上传成功!');
                    $(".scopes_album input[name='cover']").val(response.key);
                }
            });
        }, 2000);
    };
});

/**
 * 公用js库。
 *
 * @author    Fairyin <fairyin@126.com>
 * @copyright © 2016 www.imcn.vip
 * @license   GPL-3.0
 */

$(document).ready(function(){
    if ("object" !== typeof common) common = {};
    
    common.apiurl = "/api/";
    
    common.ajaxtime = 3000;
    
    common.ajax = function(url, method, param, onSuccess, onFailure, token){
        param._token = $("input[name='_token']").val();
        $.ajax({
            url: url,
            type: method,
            beforeSend: function(xhr){
                xhr.setRequestHeader('X-CSRF-TOKEN', token);
            },
            data: param,
            dataType: "json",
        }).done(function(data){
            onSuccess(data);
        })
        .fail(function(error){
            if (error.readyState === 0 && error.status === 0) {

                return false;
            }
            onFailure(JSON.parse(error.responseText));
        });
    };
    
    common.requestUrl = {};

    $.ajaxPrefilter(function(options, originalOptions, jqXHR) {
        var key = options.url;
        if (typeof(common.requestUrl[key]) === 'undefined') {
            common.requestUrl[key] = jqXHR;
        } else {
            //放弃当前触发的请求
            jqXHR.abort();
            //放弃之前触发的请求
            //common.requestUrl[key].abort(); 
        }
        options.complete = function(jqXHR, textStatus) {
            //限制ajax请求延迟时间
            setTimeout(function(){
                delete common.requestUrl[key];
            }, common.ajaxtime);
        };
    });
});

window.onload = function(){
    document.onkeydown = function(event){
        var e = event || window.event || arguments.callee.caller.arguments[0];
        if (e && e.keyCode === 13) { // enter 键
            if ($(".scopes_login").length > 0) {
                _login.login();
            }
        }
    };
};

/**
 * 后台登录。
 *
 * @author    Fairyin <fairyin@126.com>
 * @copyright © 2016 www.imcn.vip
 * @license   GPL-3.0
 */

$(document).ready(function(){

    if (!$(".scopes_login").length) return;

    if ("object" != typeof _login) _login = {};
    
    //登录
    _login.login = function(){
        var url = common.apiurl + 'shadow/login';
        var params = {
            account: $("input[name='account']").val(),
            password: $("input[name='password']").val()
        };
        common.ajax(url, 'POST', params, function(data){
            _login.redirect(data);
        }, function(error){
            _login.tips(error);
        });
    };
    
    _login.tips = function(data){
        $(".scopes_login .error-tips").parent().removeAttr('style');
        $(".scopes_login .error-tips").html(data.reason);
    };
    
    _login.redirect = function(data)
    {
        if (data.token == false || data.token == undefined) {
            var error = {
                'reason': '跳转失败！~'
            };
            _login.tips(error);
        }
        var token = data.token;
        var date = new Date();
        //一个小时的毫秒数
        var t = date.getTime() + 3600000 * 12;
        var expires = new Date(t);
        var options = {
            'expires': expires,
            'path': '/',
            'domain': '.imcn.vip'
        };
        $.cookie('u', token, options);
        window.location.href = "/shadow/";
    };
    
    _login.hideTips = function(){
        $(".error-tips").parent().attr('style', 'visibility:hidden;');
    };
    
    $("input[name='account']").on('keyup', _login.hideTips);
    $("input[name='password']").on('keyup', _login.hideTips);
    
    $(".scopes_login .btn.btn-success.btn-block").on('click', _login.login);
});
/**
 * 后台标签管理。
 *
 * @author    Fairyin <fairyin@126.com>
 * @copyright © 2016 www.imcn.vip
 * @license   GPL-3.0
 */

$(document).ready(function(){
    if (!$(".scopes_tag").length) return;

    if ("object" != typeof _tag) _tag = {};
    
    _tag.showDilog = function(){
        $('#tag').modal('show');
    };
    
    $(".scopes_tag .add_tag").on('click', function(){
        $("input[name='type']").val('add_tag');
        $("input[name='title']").val('');
        _tag.showDilog();
    });
    
    //启用标签
    $(".scopes_tag .btn-qiyong").on('click', function(){
        var id = $(this).attr('data-id');
        console.log(id);
        var flag = confirm('启用标签？');
        if (flag === true) {
            $("input[name='type']").val('qiyong_tag');
            $("input[name='id']").val(id);
            $(".scopes_tag form").submit();
        }
    });
    
    //禁用标签
    $(".scopes_tag .btn-jinyong").on('click', function(){
        var id = $(this).attr('data-id');
        var flag = confirm('禁用标签？');
        if (flag === true) {
            $("input[name='type']").val('jinyong_tag');
            $("input[name='id']").val(id);
            $(".scopes_tag form").submit();
        }
    });
    
    //编辑标签
    $(".scopes_tag .btn-edit").on('click', function(){
        $("input[name='type']").val('edit_tag');
        $("input[name='id']").val($(this).attr('data-id'));
        $("input[name='title']").val($(this).attr('data-title'));
        _tag.showDilog();
    });
});
/**
 * 后台类型管理。
 *
 * @author    Fairyin <fairyin@126.com>
 * @copyright © 2016 www.imcn.vip
 * @license   GPL-3.0
 */

$(document).ready(function(){
    if (!$(".scopes_type").length) return;

    if ("object" != typeof _type) _type = {};
    
    _type.showDilog = function(){
        $('#type').modal('show');
    };
    
    $(".scopes_type .add_type").on('click', function(){
        $("input[name='type']").val('add_type');
        $("input[name='title']").val('');
        _type.showDilog();
    });
    
    //启用类型
    $(".scopes_type .btn-qiyong").on('click', function(){
        var id = $(this).attr('data-id');
        console.log(id);
        var flag = confirm('启用类型？');
        if (flag === true) {
            $("input[name='type']").val('qiyong_type');
            $("input[name='id']").val(id);
            $(".scopes_type form").submit();
        }
    });
    
    //禁用类型
    $(".scopes_type .btn-jinyong").on('click', function(){
        var id = $(this).attr('data-id');
        var flag = confirm('禁用类型？');
        if (flag === true) {
            $("input[name='type']").val('jinyong_type');
            $("input[name='id']").val(id);
            $(".scopes_type form").submit();
        }
    });
    
    //编辑类型
    $(".scopes_type .btn-edit").on('click', function(){
        $("input[name='type']").val('edit_type');
        $("input[name='id']").val($(this).attr('data-id'));
        $("input[name='title']").val($(this).attr('data-title'));
        _type.showDilog();
    });
});
/**
 * 后台上传图片管理。
 *
 * @author    Fairyin <fairyin@126.com>
 * @copyright © 2016 www.imcn.vip
 * @license   GPL-3.0
 */

$(document).ready(function(){
    if (!$(".scopes_upload").length) return;

    if ("object" != typeof _upload) _upload = {};

    var uploader = WebUploader.create({
        // 选完文件后，是否自动上传。
        auto: false,
        // 文件接收服务端。
        server: '//imcn.vip/shadow/upload',
        // 选择文件的按钮。可选。
        // 内部根据当前运行是创建，可能是input元素，也可能是flash.
        pick: '#addimg',
        // 只允许选择图片文件。
        accept: {
            title: 'Images',
            extensions: 'gif,jpg,jpeg,bmp,png',
            mimeTypes: 'image/*'
        },
        formData: {
            
        },
        fileVal: 'img',
        compress: false,
        threads: 1
    });
    
    uploader.on('filesQueued', function(files) {
        for (var ii in files) {
            uploader.makeThumb(files[ii], function(error, ret) {
                if (error) {
                    console.log('预览错误');
                } else {
                    var ll = $(".duilie img").length + 1;
                    var str = "<img src='" + ret + "' data-key='" + ll + "'>";
                    $(".duilie").append(str);
                }
            });
        }
    });
    
    _upload.duilie = parseInt($(".scopes_upload input[name='start']").val());
    
    uploader.on('uploadStart', function(file){
        uploader.options.formData.key = 'dtl/' + $(".btn-save").attr('data-id') + '/' + _upload.duilie + '.jpg';
        uploader.options.formData._token  = $("#upload").attr('data-token');
    });
    
    uploader.on('uploadSuccess', function(file, response){
        if (typeof(response.key) !== 'undefined') {
            $(".scopes_upload input[name='end']").val(_upload.duilie);
            if (typeof(_upload.items) === 'undefined') {
                _upload.items = {};
            }
            _upload.items[_upload.duilie] = response.ext;
            _upload.duilie += 1;
        }
    });
    
    $("#upload").on('click', function(){
        uploader.upload();
    });
    
    _upload.save = function(){
        var url = '//imcn.vip/shadow/photo/detail/' + $(this).attr('data-id');
        var token = $("#upload").attr('data-token');
        common.ajax(url, 'POST', {
            qianzhui: $(".scopes_upload input[name='qianzhui']").val(),
            houzhui: $(".scopes_upload input[name='houzhui']").val(),
            start: $(".scopes_upload input[name='start']").val(),
            end: $(".scopes_upload input[name='end']").val(),
            type: JSON.stringify(_upload.items)
        }, function(data){
            console.log(data);
        }, function(error){
            console.log(error);
        }, token);
    };
    
    $(".scopes_upload .btn-save").on('click', _upload.save);
    
    $(".scopes_upload input[name='start']").on('keyup', function(){
        var duilie  = parseInt($(this).val());
        if (isNaN(duilie)) {
            return false;
        }
        _upload.duilie = duilie;
    });
    
    
});
